DECLARE FUNCTION Ansi% ()

IF Ansi% THEN
    PRINT "ANSI.SYS is installed."
ELSE
    PRINT "ANSI.SYS is NOT installed."
END IF
END

FUNCTION Ansi%

    DIM Reply AS STRING
    DIM T!

    ' Clear any pending keystrokes.
    DO WHILE INKEY$ <> ""
    LOOP

    ' Ask ANSI driver for cursor position.
    PRINT CHR$(27); "[6n";

    Reply = ""
    T! = TIMER

    ' Wait briefly for a response.
    DO
        Reply = Reply + INKEY$

        ' ANSI replies with ESC[row;colR
        IF INSTR(Reply, "R") THEN
            Ansi% = -1      ' TRUE
            EXIT FUNCTION
        END IF

        ' Timeout after about 1 second.
        IF TIMER - T! > 1! THEN EXIT DO
    LOOP

    Ansi% = 0              ' FALSE

END FUNCTION

